<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="search" href="http://www.wiki.xilinx.com/space/opensearch" type="application/opensearchdescription+xml" title="Wikispaces Search (Xilinx Wiki Wiki)" />
<link rel="alternate" type="application/x-wiki" title="Edit This Page" href="/page/edit/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip" />
<link rel="alternate" title="Xilinx Wiki - All Changes" href="http://www.wiki.xilinx.com/wiki/xmla?v=rss_2_0" type="application/rss+xml" />
<link rel="alternate" title="www : Zynq-7000 AP SoC Boot - Multiboot Tech Tip - Discussion" href="http://www.wiki.xilinx.com/message/xml/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip?v=rss_2_0" type="application/rss+xml" />
<link rel="alternate" title="www : Zynq-7000 AP SoC Boot - Multiboot Tech Tip - Edits" href="http://www.wiki.xilinx.com/page/xml/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip?v=rss_2_0" type="application/rss+xml" />
<link rel="microsummary" href="/page/microsummary/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip/edits"/>
<link rel="microsummary" href="/page/microsummary/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip/messages"/>
<script type="text/javascript">
  
if (typeof ws === 'undefined') ws = {};
ws.context = {
  instance: {
    id: '57898',
    url: 'wiki.xilinx.com',
    isMain: false,
    supportsGoogleDocs: false,
    isTesClassroom: false,
  },
  user: {
    id: '',
    username: '',
    status: '',
    locale: 'en_US',
    imageUrlPrefix: 'http://www.wiki.xilinx.com/i/user_none_',
    isTeacher: false,
    canAdministerWiki: false,
  },
  wiki: {
    id: '18335812',
    name: 'www',
    text: 'Xilinx Wiki',
    module: 'B',
    isClassroom: false,
    isTesClassroom: false
    ,defaultSpaceId: 17830810
    ,isWwwWiki: true
  },
  project: {
    id: '18503150',
    name: ''
  },
  space: {
    id: '17830810',
    name: 'www',
    isDefaultSpace: true,
    isDefaultTemplate: false
  },

  environment_name: 'prod',

  path: {
    object: 'page',
    method: 'view',
    page: 'Zynq-7000 AP SoC Boot - Multiboot Tech Tip',
    id: ''
  },

  settings: {
    main_domain: 'wikispaces.com',
    session_url: 'https://session.wikispaces.net/57898/',
    asset_url_prefix: 'http://www.wiki.xilinx.com',
    beta_features: false,
    isMobileSite: false,
    isUploadCapable: true,
    can_discuss: false,
    has_gdocs: false,
    isDialog: false,
    pwin: ''
  },
  clockSkewMillis: 1534822141616 - ((window.performance && window.performance.timing.responseStart > 0) ? window.performance.timing.responseStart : (new Date()).getTime())
}


// legacy javascript API variables, use the above instead
var wikispaces_isUserLoggedIn = !!ws.context.user.id;
var wikispaces_isMain = ws.context.instance.isMain;
var wikispaces_username = ws.context.user.username;
var wikispaces_spaceName = ws.context.space.name;
var wikispaces_projectName = ws.context.project.name;
var wikispaces_wikiName = ws.context.wiki.name;
var wikispaces_wikiText = ws.context.wiki.text;
var wikispaces_isDefaultSpace = ws.context.space.isDefaultSpace;
var wikispaces_method = ws.context.path.method;
var wikispaces_object = ws.context.path.object;
var wikispaces_page = ws.context.path.page;
var wikispaces_id = ws.context.path.id;
var wikispaces_domain = ws.context.instance.url;
var wikispaces_isUserOrganizer = false;
var wikispaces_main_domain = ws.context.settings.asset_url_prefix;
var wikispaces_asset_url_prefix = ws.context.settings.asset_url_prefix;
var wikispaces_beta_features = ws.context.settings.beta_features;
var wikispaces_isMobileSite = ws.context.settings.isMobileSite;
var wikispaces_isUploadCapable = ws.context.settings.isUploadCapable;
var wikispaces_can_discuss = ws.context.settings.can_discuss;
var wikispaces_has_gdocs = ws.context.settings.has_gdocs;

</script><title>Xilinx Wiki - Zynq-7000 AP SoC Boot - Multiboot Tech Tip</title>
<meta charset="utf-8" />
<link rel="apple-touch-icon" sizes="144x144" href="http://www.wiki.xilinx.com/_/z6371z4x/i/logo-144.png" />
<link rel="apple-touch-icon" sizes="114x114" href="http://www.wiki.xilinx.com/_/j5j77xz3/i/logo-114.png" />
<link rel="apple-touch-icon" sizes="72x72" href="http://www.wiki.xilinx.com/_/vq8j5432/i/logo-72.png" />
<link rel="apple-touch-icon" href="http://www.wiki.xilinx.com/_/38515190/i/logo-57.png" />
<link rel="shortcut icon" href="http://www.wiki.xilinx.com/_/55v9k02z/i/logo-16.png" />
<style type="text/css">
/* Standard theme styles */
*, *:before, *:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
body {
  font-family: arial, helvetica, sans-serif;
  font-size: 14px;
  line-height: 20px;
  margin: 0;
}
.ws-theme-header-inner,
.ws-theme-body-inner,
.ws-theme-footer-inner,
.ws-theme-content-inner,
.ws-theme-sidebar-inner {
  position: relative;
}
.ws-theme-header-inner:after,
.ws-theme-body-inner:after,
.ws-theme-footer-inner:after,
.ws-theme-content-inner:after,
.ws-theme-sidebar-inner:after,
.ws-theme-menu-inner:after {
  content: " ";
  visibility: hidden;
  display: block;
  height: 0;
  clear: both;
}
.ws-theme-content, .ws-theme-sidebar {
  overflow-x: auto;
}
.ws-theme-footer {
  text-align: right;
}
.ws-theme-footer a, .ws-theme-footer a:hover {
  text-decoration: none;
}
@media (min-width: 768px) {
  .ws-theme-container {
    width: 750px;
    margin-right: auto;
    margin-left: auto;
  }
  .ws-theme-content {
    width: 550px;
    min-height: 384px;
    float: right;
  }
  .ws-theme-sidebar {
    width: 200px;
    float: left;
  }
}
@media (min-width: 992px) {
  .ws-theme-container {
    width: 970px;
  }
  .ws-theme-content {
    width: 770px;
    min-height: 496px;
  }
}
@media (min-width: 1200px) {
  .ws-theme-container {
    width: 1170px;
  }
  .ws-theme-content {
    width: 970px;
    min-height: 600px;
  }
}
/* End standard theme styles */
</style>
<style type="text/css">
/* Theme-specific styles */
body {
  background-color: #ffffff;
}

.ws-theme-header .WikiSearch .WikiSearchInput,
.ws-theme-sidebar .WikiSearch .WikiSearchInput,
.ws-theme-footer .WikiSearch .WikiSearchInput {
  width: 100%;
}

.ws-theme-sidebar,
.ws-theme-footer {
  color: #000000;
}
.ws-theme-sidebar a,
.ws-theme-footer a {
  color: #0000ff;
  text-decoration: none;
}
.ws-theme-sidebar a:hover,
.ws-theme-footer a:hover {
  text-decoration: underline;
}
.ws-theme-sidebar img,
.ws-theme-footer img {
  border: none;
}

.ws-theme-content, .ws-theme-sidebar {
  overflow-x: visible;
}

.ws-theme-menu-inner,
.ws-theme-content-inner {
  padding: 10px;
  border-radius: 10px;
}

.ws-theme-body-inner {
  padding: 6px 5px 0;
  background-color: #ffffff;
}

.ws-theme-content-inner {
  background-color: #FFF;
}

.ws-theme-sidebar {
  display: none;
}

.ws-theme-footer {
  text-align: center;
}
.ws-theme-footer-inner {
  padding: 15px 0;
}
.ws-theme-footer .WikiLicense img {
  vertical-align: text-bottom;
}

@media (min-width: 768px) {
  .ws-theme-container {
    width: auto;
  }

  .ws-theme-body-inner {
    padding: 0 10px;
  }

  .ws-theme-content {
    width: auto;
    margin-left: 200px;
    padding: 30px 0 0 10px;
    float: none;
  }
  .ws-theme-content-inner {
    float: left;
    width: 100%;
  }

  .ws-theme-sidebar {
    display: block;
    width: 200px;
    float: left;
  }
  .ws-theme-sidebar .ws-theme-logo {
    margin-left: -10px;
    position: relative;
    z-index: 1;
  }
  .ws-theme-sidebar .ws-theme-menu {
    margin-top: 15px;
  }
  .ws-theme-sidebar .ws-theme-menu-inner {
   background-color: #dbe7ec  }
  .ws-theme-sidebar .WikiActions {
    list-style-type: none;
    padding: 0;
    margin: 0;
  }
  .ws-theme-sidebar .WikiActions > li {
    padding: 2px;
  }
  .ws-theme-sidebar .WikiCustomNav ol {
    padding-left: 16px;
  }
  .ws-theme-sidebar .WikiCustomNav ol.includePageList {
    padding-left: 0;
  }
  .ws-theme-sidebar .WikispacesNavbar {
    margin: 0 -10px;
    padding: 0 10px;
  }
  .ws-theme-sidebar .ws-theme-nav-edit {
    color: #666;
    text-align: center;
  }
  .ws-theme-sidebar .ws-theme-nav-edit a {
    color: inherit;
  }

  .ws-theme-footer {
    float: left;
    width: 100%;
  }
}
/* End theme-specific styles */
</style>
<link rel="stylesheet" href="http://www.wiki.xilinx.com/stylesheet/view/414980440-414983508D.gz.css" type="text/css" />
<link rel="stylesheet" href="http://www.wiki.xilinx.com/s/gz/9jvvjv40-internal-bootstrap.css" type="text/css" />
<link rel="stylesheet" href="http://www.wiki.xilinx.com/s/gz/vz033906-internal.css" type="text/css" />
<script src="http://www.wiki.xilinx.com/s/gz/030zz698-top.min.js" type="text/javascript"></script>

<script type="text/javascript">
  var _gaq = _gaq || [];

  var wsGoogleInstanceAccount = 'UA-40469237-1';
  _gaq.push(['gaInstance._setAccount', wsGoogleInstanceAccount]);
  _gaq.push(['gaInstance._setDomainName', '.wiki.xilinx.com']);
  _gaq.push(['gaInstance._trackPageview']);

  var wsGoogleAccount = 'UA-80504-1';
  _gaq.push(['_setAccount', wsGoogleAccount]);
  _gaq.push(['_gat._anonymizeIp']);
  _gaq.push(['_setDomainName', 'wiki.xilinx.com']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_setCustomVar', 2, 'Authenticated', 'Guest', 2]);
  _gaq.push(['_trackPageview']);
</script></head>
<body><a href="#WikiContent" class="hidden sr-only sr-only-focusable">Skip to main content</a><div id="js-fixed-header-holder" class="fixed"><div class="WikispacesContent WikispacesBs3" role="banner">
      
    <div class="ws-main-top-nav visible-xs">
    <div class="navbar navbar-static-top" style="margin-bottom: 0;">
      <div class="container">
                <div class="navbar-header">
          <div class="visible-xs pull-left">
            <a href="/space/menu" class="WikispacesDialogLink btn navbar-btn">
              <i class="fa fa-bars"></i>
            </a>
          </div>
          <div class="visible-xs pull-right js-globalnav-popover-container">
                        <a href="http://www.wiki.xilinx.com/site/signin?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip" class="btn navbar-btn ws-mobile-guest-username js-globalnav-popover-trigger">
              guest
            </a>
                        <div class="hidden js-globalnav-popover-content">
              <div class="WikispacesContent WikispacesBs3">
                <div class="WikiInternalHeaderNav noHide">
  <div class="WikiInternalHeaderNavMenu">
                          
                  <span class="WikiInternalHeaderNavMenuArea"><a href="http://www.wiki.xilinx.com/user/join?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip" rel="nofollow" class="WikispacesXDomainDialogLink">Join</a></span>

          <span class="divider">|</span>
        
        <span class="WikiInternalHeaderNavMenuArea"><a class="js-help-trigger" rel="nofollow" href="http://helpcenter.wikispaces.com/">Help</a></span>

        <span class="divider">|</span>
      
      <span class="WikiInternalHeaderNavMenuArea"><a href="http://www.wiki.xilinx.com/site/signin?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip" rel="nofollow" class="WikispacesXDomainDialogLink">Sign In</a></span>
      </div>
</div>              </div>
            </div>
          </div>
          <div class="ws-navbar-middle-xs">
            <div class="navbar-brand" role="navigation">
              <a href="http://www.wiki.xilinx.com/" class="ws-logo"></a>
              <i class="fa fa-angle-right"></i>
              <a href="http://www.wiki.xilinx.com/">Xilinx Wiki</a>
                              <i class="fa fa-angle-right"></i> <a href="http://www.wiki.xilinx.com/home">Home</a>
              
            </div>
          </div>
                    <form action="/search/view" method="post" class="navbar-form ws-include-xs pull-left ws-navbar-search hidden-xs" role="search"><input type="hidden" name="wikispacesFormToken" value="963052810d4e934249088845e3fcfb75d4ba8389"/><input type="hidden" name="a" value="1" /><input type="text" class="form-control search-query" name="q" value="" placeholder="Search" /> </form>
                  </div>
      </div>
    </div>
  </div>
      <div class="hidden-xs"><div class="WikiInternalHeaderNav WikiElement floating">
  <div class="WikiInternalHeaderNavMenu">
                                    <span class="WikiInternalHeaderNavMenuArea guestUserName">guest</span><span class="slideMarker divider">|</span>
        
                  <span class="WikiInternalHeaderNavMenuArea"><a href="http://www.wiki.xilinx.com/user/join?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip" rel="nofollow" class="WikispacesXDomainDialogLink">Join</a></span>

          <span class="divider">|</span>
        
        <span class="WikiInternalHeaderNavMenuArea"><a class="js-help-trigger" rel="nofollow" href="http://helpcenter.wikispaces.com/">Help</a></span>

        <span class="divider">|</span>
      
      <span class="WikiInternalHeaderNavMenuArea"><a href="http://www.wiki.xilinx.com/site/signin?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip" rel="nofollow" class="WikispacesXDomainDialogLink">Sign In</a></span>
      </div>
</div></div>
  </div></div><div id="js-fixed-header-offset">
<div class="ws-theme-body">
  <div class="ws-theme-container">
    <div class="ws-theme-body-inner">
      <div class="ws-theme-sidebar">
        <div class="ws-theme-sidebar-inner">
          <header class="ws-theme-logo" role="banner">
            <a href="http://www.wiki.xilinx.com/" class="WikiLogo WikiElement"><img src="http://www.wiki.xilinx.com/space/showlogo/1525130882/logo.png" alt="Xilinx Wiki" /></a>          </header>
          <nav role="navigation">
            <div class="ws-theme-menu">
              <div class="ws-theme-menu-inner">
                <ul class="WikiActions WikiElement WikiControls">
    <li id="WikiActionHome"><div><span class="WikiActionSupplemental" style="float: right;"></span><a href="http://www.wiki.xilinx.com/"><i class="fa fa-home fa-fw"></i></a><a href="http://www.wiki.xilinx.com/">Wiki Home</a></div></li>
    <li id="WikiActionChanges"><div><span class="WikiActionSupplemental" style="float: right;"></span><a href="/site/changes"><i class="fa fa-clock-o fa-fw"></i></a><a href="/site/changes">Recent Changes</a></div></li>
    <li id="WikiActionPagesAndFiles"><div><span class="WikiActionSupplemental" style="float: right;"></span><a href="/space/content"><i class="fa fa-file-text-o fa-fw"></i></a><a href="/space/content">Pages and Files</a></div></li>
    <li id="WikiActionMembers"><div class="js-member-link"><span class="WikiActionSupplemental" style="float: right;"></span><a href="/wiki/members"><i class="fa fa-user fa-fw"></i></a><a href="/wiki/members">Members</a></div></li>
</ul>
                <form action="/search/view" method="post" class="WikiSearch WikiElement" role="search"><input type="hidden" name="a" value="1" /><input type="text" class="form-control WikiSearchInput" name="q" value="" placeholder="Search" /> </form>              </div>
            </div>
            <div class="ws-theme-menu">
              <div class="ws-theme-menu-inner">
                <div class="WikiCustomNav WikiElement wiki"><strong><a class="wiki_link" href="http://www.wiki.xilinx.com/Getting%20Started">Getting Started</a></strong><br />
<br />
<a class="wiki_link" href="/Linux">Linux</a><br />
<a class="wiki_link" href="/U-boot">U-Boot</a><br />
<a class="wiki_link" href="/Zynq%20SoC">Zynq SoC</a><br />
<a class="wiki_link_ext" href="http://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html" rel="nofollow" target="_blank">Zynq UltraScale+ MPSoC</a><br />
<a class="wiki_link" href="/MicroBlaze">MicroBlaze</a><br />
<br />
<a class="wiki_link" href="/Linux%20Release%20Notes">Linux Release Notes</a><br />
<br />
<a class="wiki_link" href="/Technical%20Articles">Technical Articles</a><br />
<a class="wiki_link" href="/Zynq%20Releases">Release Images</a><br />
<a class="wiki_link" href="/Create%20and%20Submit%20a%20Patch">Submit a Patch to Xilinx</a><br />
<br />
<strong><a class="wiki_link" href="/Disclaimer">Disclaimer</a></strong><br />
<strong><a class="wiki_link_ext" href="http://www.wikispaces.com/Privacy" rel="nofollow" target="_blank">Privacy Policy</a></strong><br />
<strong><a class="wiki_link_ext" href="http://www.wikispaces.com/Terms" rel="nofollow" target="_blank">Wiki Terms of Use</a></strong><br />
<br />
<span style="line-height: 1.5;"><a class="wiki_link" href="/Style%20Guide">Style Guide</a></span><br />
<a class="wiki_link" href="/Contact">Contact Us</a><br />
<br />
<span style="font-size: 13px; line-height: 1.5;"><a class="wiki_link" href="/Index%20of%20Tags">Index of Tags</a></span><br />
<a class="wiki_link_ext" href="http://www.xilinx.com" rel="nofollow" target="_blank">Xilinx.com</a></div>                <div class="ws-theme-nav-edit">
                                  </div>
              </div>
            </div>
          </nav>
        </div>
      </div>
      <div class="ws-theme-content">
        <main class="ws-theme-content-inner" role="main">
          <div class="contentBox"><div class="innerContentBox" id="WikiContent">

<script type="text/template" id="comment-footer-template">

<div class="commentFooter modal-footer">
  <div class="pull-left">
    <button type="button" class="btn btn-default btn-sm previous"><i class="fa fa-arrow-left"></i></button>
    <button type="button" class="btn btn-default btn-sm next"><i class="fa fa-arrow-right"></i></button>
  </div>
  <% if (ws.context.user.canAdministerWiki && !ws.comments.Manager.readOnly) { %>
  <div class="pull-right">
    <button type="button" class="btn btn-default btn-sm remove">Remove</button>
  </div>
  <% } %>
</div>

</script>

<script type="text/template" id="comment-content-template">
<div class="ws-box commentView">
  <div class="comment-close">
    <button type="button" class="closeme close" aria-hidden="true"><i class="fa fa-times"></i></button>
  </div>
  <div class="commentHeader">
    <p class="ws-stream-meta command-context">
      <a class="userLink userLinkPicture" href="<%= userCreated.url %>"><img class="userPicture" src="<%= userCreated.imageUrl %>" width="16" height="16"></a>
      <a href="<%= userCreated.url %>"><%= userCreated.username %></a>
      <% if (smartDate == '__live__') { %>
      <abbr class="timeago" title="<%= (new Date(parseInt(dateCreated, 10) * 1000)).toISOString() %>">
        <%= dateCreated %>
      </abbr>
      <% } else { %>
        <%- smartDate %>
      <% } %>
      <% if (ws.context.user.canAdministerWiki && ws.comments.Manager.readOnly) { %>
        <i class="fa fa-trash-o contextual-command delete ws-tip" title="Delete Comment"></i>
      <% } %>
    </p>
  </div>

  <div class="commentBody">
    <div class="commentContent">
      <%= description %>
    </div>

      <% for(i = 0; i < replyPages.length; i++) { %>
        <% for(var j = 0; j < replyPages[i].digests.length; j++) { %>
      <div class="commentReply" data-id="<%= replyPages[i].digests[j].id %>">
        <p class="ws-stream-meta command-context">
          <a class="userLink userLinkPicture" href="<%= replyPages[i].digests[j].userCreated.url %>"><img class="userPicture" src="<%= replyPages[i].digests[j].userCreated.imageUrl %>" width="16" height="16"></a>
          <a href="<%= replyPages[i].digests[j].userCreated.url %>"><%= replyPages[i].digests[j].userCreated.username %></a>
          <% if (smartDate == '__live__') { %>
          <abbr class="timeago" title="<%= (new Date(parseInt(replyPages[i].digests[j].dateCreated, 10) * 1000)).toISOString() %>">
            <%= new Date(parseInt(replyPages[i].digests[j].dateCreated, 10) * 1000).toLocaleString() %>
          </abbr>
          <% } else { %>
            <%- smartDate %>
          <% } %>
          <% if (ws.context.user.canAdministerWiki) { %>
          <i class="fa fa-trash-o contextual-command delete-reply ws-tip" title="Delete Reply"></i>
          <% } %>
          </p>
        <div class="commentContent"><%= replyPages[i].digests[j].body %></div>
      </div>
        <% } %>
      <% } %>

      <form class="reply commentReply">
        <div class="form-group">
          <textarea name="reply" placeholder="Reply" class="form-control" /></textarea>
        </div>
        <div class="btn-toolbar">
          <button type="submit" class="btn btn-primary btn-sm" name="go" value="1">Post</button>

          <% if (ws.context.user.id) { %>
            <% if (monitored) { %>
            <button type="button" class="btn btn-default btn-sm pull-right toggle-monitor ws-tip active" title="You are monitoring replies."><i class="fa fa-eye"></i></button>
            <% } else { %>
            <button type="button" class="btn btn-default btn-sm pull-right toggle-monitor ws-tip" title="You are not monitoring replies."><i class="fa fa-eye"></i></button>
            <% } %>
          <% } %>
          <% if (ws.context.user.canAdministerWiki) { %>
            <% if (locked) { %>
            <button type="button" class="btn btn-default btn-sm pull-right toggle-lock ws-tip active" title="Replies are not allowed."><i class="fa fa-lock"></i></button>
            <% } else { %>
            <button type="button" class="btn btn-default btn-sm pull-right toggle-lock ws-tip" title="Replies are allowed."><i class="fa fa-lock"></i></button>
            <% } %>
          <% } %>

          <i class="fa fa-spinner fa-spin spinner pull-right hidden"></i>
        </div>
      </form>
   </div>

   
<div class="commentFooter modal-footer">
  <div class="pull-left">
    <button type="button" class="btn btn-default btn-sm previous"><i class="fa fa-arrow-left"></i></button>
    <button type="button" class="btn btn-default btn-sm next"><i class="fa fa-arrow-right"></i></button>
  </div>
  <% if (ws.context.user.canAdministerWiki && !ws.comments.Manager.readOnly) { %>
  <div class="pull-right">
    <button type="button" class="btn btn-default btn-sm remove">Remove</button>
  </div>
  <% } %>
</div>

</div>
</script>

<script type="text/template" id="comment-composer-template">
<div class="ws-box commentView">
  <div class="commentComposer">
    <div class="comment-close">
      &nbsp;<button type="button" class="close closeme" aria-hidden="true"><i class="fa fa-times"></i></button>
    </div>
    <div class="commentHeader">
      <p class="ws-stream-meta command-context">
        <img class="userPicture" src="<%= userCreated.imageUrl %>" width="16" height="16">
        <a href="#" onclick="return false;"><%= userCreated.username %></a>
      </p>
    </div>
    <div class="commentBody">
      <textarea name="comment" class="compose form-control" placeholder="Comment"/></textarea><br/>
      <div class="btn-toolbar">
        <button type="button" class="btn btn-default btn-sm monitored active pull-right" style="margin-left: 6px" onclick="jQuery(this).toggleClass('active')"><i class="fa fa-eye"></i></button>
        <button type="button" class="btn btn-default btn-sm locked btn-toggle pull-right" onclick="jQuery(this).toggleClass('active')"><i class="fa fa-lock"></i></button>
        <button type="button" class="btn btn-primary btn-sm closeme">Save</button>
      </div>
    </div>
  </div>

  
<div class="commentFooter modal-footer">
  <div class="pull-left">
    <button type="button" class="btn btn-default btn-sm previous"><i class="fa fa-arrow-left"></i></button>
    <button type="button" class="btn btn-default btn-sm next"><i class="fa fa-arrow-right"></i></button>
  </div>
  <% if (ws.context.user.canAdministerWiki && !ws.comments.Manager.readOnly) { %>
  <div class="pull-right">
    <button type="button" class="btn btn-default btn-sm remove">Remove</button>
  </div>
  <% } %>
</div>

</div>
</script>

<script type="text/template" id="comment-proxy-template">
<div class="comment-proxy">
  <span class="commentUser">
  <% if (userCreated) { %>
    <img class="userPicture" src="<%= userCreated.imageUrl %>" width="16" height="16">
  <% } else { %>
    <img class="userPicture" src="<%= ws.context.user.imageUrlPrefix %>sm.jpg" width="16" height="16">
  <% } %>
  </span>
  <span class="commentReplies"><%= 1 + _(replyPages).reduce(function(memo, page){ return memo + page.digests.length; }, 0) %></span>
</div>
</script>

<div class="ws-menu-bar WikiControls WikispacesContent WikispacesBs3">
  
    <h1 class="pageTitle"><a href="/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip">Zynq-7000 AP SoC Boot - Multiboot Tech Tip</a></h1>
      <div class="btn-group pull-right">
          <span class="btn btn-default disabled tipme" title="you do not have permission to edit this page"><i class="fa fa-pencil fa-fw"></i> Edit</span>          <a class="btn btn-default tipme" title="no discussion posts" href="/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip#discussion"><i class="fa fa-comments fa-fw"></i> 0</a>          <a class="btn btn-default tipme" title="view 8 revisions" href="/page/history/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><i class="fa fa-clock-o fa-fw"></i> 8</a>          <a class="btn btn-default ws-btn-more dropdown-toggle tipme" title="more options" href="/page/menu/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><i class="icon-height-only fa-fw"></i>&hellip;</a>        <ul class="ws-more-menu dropdown-menu dropdown-menu-right">
              <li class=" dropdown"><a class=" ws-tag-dropdown-toggle" href="/page/tags/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><span class="pull-right">2</span> <i class="fa fa-tag fa-fw"></i> Tags</a>
          <div class="dropdown-menu dropdown-menu-right ws-tag-dropdown-menu">
          



<form action="#" name="WikiTagForm" class="WikiTagForm"><input type="hidden" name="wikispacesFormToken" value="bc6281a32a2745a77042ebce54a77e561fa9af38"/><input type="hidden" name="wikispacesFormToken" value="bc6281a32a2745a77042ebce54a77e561fa9af38"/>
  <div class="WikiTagList">
    <i class="fa fa-tag ws-action"></i>
        <ul class="list-unstyled">
                          <li><a href="/space/content?tag=techtip">techtip</a></li>
                                <li><a href="/space/content?tag=Zynq">Zynq</a></li>
              </ul>
      </div>
  </form>      </div>
    </li>
              <li class="divider"></li>
            <li class=""><a class=" WikispacesDialogLink" href="http://www.wiki.xilinx.com/wiki/addmonitor?monitorLink=page%3AZynq-7000%20AP%20SoC%20Boot%20-%20Multiboot%20Tech%20Tip"><i class="fa fa-eye fa-fw"></i> Notify</a>
    </li>
        <li class=""><a class=" WikispacesDialogLink" href="/page/rss/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><i class="fa fa-rss fa-fw"></i> RSS</a>
    </li>
        <li class=""><a class="" href="/page/links/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><i class="fa fa-link fa-fw"></i> Backlinks</a>
    </li>
              <li class="divider"></li>
            <li class=""><a class="" href="/page/code/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><i class="fa fa-code fa-fw"></i> Source</a>
    </li>
        <li class=""><a class="" href="/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip?f=print"><i class="fa fa-print fa-fw"></i> Print</a>
    </li>
        <li class=""><a class="" href="/page/pdf/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip"><i class="fa fa-cloud-download fa-fw"></i> Export (PDF)</a>
    </li>
      </ul>  </div>
  </div>




  <textarea class="form-control" id="autosaveContent" style="display:none;" rows="1" cols="1"></textarea>
  <div id="autosavePrompt" style="display:none;"></div>

<div class="commentContainer">
  <div class="commentSubject">
  <div class="wiki wikiPage" id="content_view">
  <!-- ws:start:WikiTextHeadingRule:0:&lt;h1&gt; --><h1 id="toc0"><a name="Document History"></a><!-- ws:end:WikiTextHeadingRule:0 --><u>Document History</u></h1>
 <!-- ws:start:WikiTextTocRule:24:&lt;img id=&quot;wikitext@@toc@@normal&quot; class=&quot;WikiMedia WikiMediaToc&quot; title=&quot;Table of Contents&quot; src=&quot;/site/embedthumbnail/toc/normal?w=225&amp;h=100&quot;/&gt; --><div id="toc"><h1 class="nopad">Table of Contents</h1><!-- ws:end:WikiTextTocRule:24 --><!-- ws:start:WikiTextTocRule:25: --><div style="margin-left: 1em;"><a href="#Document History">Document History</a></div>
<!-- ws:end:WikiTextTocRule:25 --><!-- ws:start:WikiTextTocRule:26: --><div style="margin-left: 1em;"><a href="#Summary">Summary</a></div>
<!-- ws:end:WikiTextTocRule:26 --><!-- ws:start:WikiTextTocRule:27: --><div style="margin-left: 1em;"><a href="#Theory">Theory</a></div>
<!-- ws:end:WikiTextTocRule:27 --><!-- ws:start:WikiTextTocRule:28: --><div style="margin-left: 1em;"><a href="#Hardware Setup">Hardware Setup</a></div>
<!-- ws:end:WikiTextTocRule:28 --><!-- ws:start:WikiTextTocRule:29: --><div style="margin-left: 1em;"><a href="#Implementation">Implementation</a></div>
<!-- ws:end:WikiTextTocRule:29 --><!-- ws:start:WikiTextTocRule:30: --><div style="margin-left: 1em;"><a href="#x1. Step by Step Instructions">1. Step by Step Instructions</a></div>
<!-- ws:end:WikiTextTocRule:30 --><!-- ws:start:WikiTextTocRule:31: --><div style="margin-left: 1em;"><a href="#x2. Verification of Multiboot">2. Verification of Multiboot</a></div>
<!-- ws:end:WikiTextTocRule:31 --><!-- ws:start:WikiTextTocRule:32: --><div style="margin-left: 2em;"><a href="#x2. Verification of Multiboot-An Example to describe Golden Image Search">An Example to describe Golden Image Search</a></div>
<!-- ws:end:WikiTextTocRule:32 --><!-- ws:start:WikiTextTocRule:33: --><div style="margin-left: 1em;"><a href="#x3. Verification of Multiboot">3. Verification of Multiboot</a></div>
<!-- ws:end:WikiTextTocRule:33 --><!-- ws:start:WikiTextTocRule:34: --><div style="margin-left: 1em;"><a href="#x4. Time for Multiboot from QSPI">4. Time for Multiboot from QSPI</a></div>
<!-- ws:end:WikiTextTocRule:34 --><!-- ws:start:WikiTextTocRule:35: --><div style="margin-left: 1em;"><a href="#x5. Locking the Boot Sector">5. Locking the Boot Sector</a></div>
<!-- ws:end:WikiTextTocRule:35 --><!-- ws:start:WikiTextTocRule:36: --><div style="margin-left: 1em;"><a href="#x6. Multiboot and NAND Bad Block Management">6. Multiboot and NAND Bad Block Management</a></div>
<!-- ws:end:WikiTextTocRule:36 --><!-- ws:start:WikiTextTocRule:37: --></div>
<!-- ws:end:WikiTextTocRule:37 -->

<table class="wiki_table">
    <tr>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Date</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Version</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Author</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Description of Revisions</span></span><br />
</td>
    </tr>
    <tr>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">18/02/13</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">0.1</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Prush Palanichamy</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Initial revision</span></span><br />
</td>
    </tr>
    <tr>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">15/5/13</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">1.0</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Prush Palanichamy</span></span><br />
</td>
        <td><span style="display: block; text-align: center;"><span style="display: block; text-align: center;">Added info on FSBL Fallback, and handling NAND Bad blocks during Multiboot</span></span><br />
</td>
    </tr>
</table>

<br />
<!-- ws:start:WikiTextHeadingRule:2:&lt;h1&gt; --><h1 id="toc1"><a name="Summary"></a><!-- ws:end:WikiTextHeadingRule:2 --><u>Summary</u></h1>
 This document shows how Multiboot works. We use QSPI as the boot device for this exercise.<br />
<br />
<!-- ws:start:WikiTextHeadingRule:4:&lt;h1&gt; --><h1 id="toc2"><a name="Theory"></a><!-- ws:end:WikiTextHeadingRule:4 --><u>Theory</u></h1>
 There are three mechanisms to do multiboot.<br />
<br />
<strong>1) Golden Image Search</strong><br />
This is initiated by BootROM when no valid header is found at the bottom of Flash Memory. The BootROM will start searching for a valid header at every 32KB offset. This mechanism is slow but reliable.<br />
<br />
<strong>2) BootROM Multiboot</strong><br />
This is initiated by FSBL i.e, user. If the BootROM finds a valid header and hands off to FSBL, then FSBL can load the Multiboot register and issue a soft reset. After a soft reset, BootROM will use the address of the Multiboot register to read the BootROM header. This mechanism is used for example, when user wants to run self-test and diagnostics, and then jump to the actual application.<br />
<br />
<strong>3) FSBL Fallback</strong><br />
To recover from an error condition, FSBL does a Fallback and enables BootROM to load another bootable image (the golden image that was originally present and in a known good state) if that image is present in the flash memory. FSBL updates a multiboot register and does a soft reset so that BootROM executes and loads the next present, valid image. The FSBL fallback can happen with or without Soft Reset. Refer the Zynq-7000 AP SoC Software Developer’s guide for more information on FSBL Fallback for secure and non-secure boot modes.<br />
<a class="wiki_link_ext" href="http://www.xilinx.com/support/documentation/user_guides/ug821-zynq-7000-swdev.pdf" rel="nofollow">http://www.xilinx.com/support/documentation/user_guides/ug821-zynq-7000-swdev.pdf</a><br />
Golden Image Search and BootROM Multiboot are described in the following figure (TRM version 14.5 - figure 6-3).<br />
<br />
Here is an Example to describe Multiboot from FSBL<br />
<br />
<!-- ws:start:WikiTextHeadingRule:6:&lt;h1&gt; --><h1 id="toc3"><a name="Hardware Setup"></a><!-- ws:end:WikiTextHeadingRule:6 --><u>Hardware Setup</u></h1>
 <br />


<table class="wiki_table">
    <tr>
        <td colspan="2"><span style="display: block; text-align: center;"><span style="display: block; text-align: center;"><strong><u><span style="font-size: 19px;">Implementation Details</span></u></strong></span></span><br />
</td>
    </tr>
    <tr>
        <td><strong>Design Type</strong><br />
</td>
        <td>PS – any revision<br />
</td>
    </tr>
    <tr>
        <td><strong>SW Type</strong><br />
</td>
        <td>Standalone<br />
</td>
    </tr>
    <tr>
        <td><strong>Boards/Tools</strong><br />
</td>
        <td>ZC702<br />
</td>
    </tr>
    <tr>
        <td><strong>Xilinx Tools Version</strong><br />
</td>
        <td>IDE 14.5<br />
</td>
    </tr>
    <tr>
        <td colspan="2"><span style="display: block; text-align: center;"><span style="display: block; text-align: center;"><strong><u><span style="font-size: 19px;">Files Provided</span></u></strong></span></span><br />
</td>
    </tr>
    <tr>
        <td><!-- ws:start:WikiTextFileRule:165:&lt;img src=&quot;http://www.wiki.xilinx.com/site/embedthumbnail/file/Multiboot_Tech_Tip_V2.0.zip?h=52&amp;w=320&quot; class=&quot;WikiFile&quot; id=&quot;wikitext@@file@@Multiboot_Tech_Tip_V2.0.zip&quot; title=&quot;File: Multiboot_Tech_Tip_V2.0.zip&quot; width=&quot;320&quot; height=&quot;52&quot; /&gt; --><div class="objectEmbed"><a href="/file/view/Multiboot_Tech_Tip_V2.0.zip/436908202/Multiboot_Tech_Tip_V2.0.zip" onclick="ws.common.trackFileLink('/file/view/Multiboot_Tech_Tip_V2.0.zip/436908202/Multiboot_Tech_Tip_V2.0.zip');"><img src="http://www.wiki.xilinx.com/i/mime/32/application/zip.png" height="32" width="32" alt="Multiboot_Tech_Tip_V2.0.zip" /></a><div><a href="/file/view/Multiboot_Tech_Tip_V2.0.zip/436908202/Multiboot_Tech_Tip_V2.0.zip" onclick="ws.common.trackFileLink('/file/view/Multiboot_Tech_Tip_V2.0.zip/436908202/Multiboot_Tech_Tip_V2.0.zip');" class="filename" title="Multiboot_Tech_Tip_V2.0.zip">Multiboot_Tech_Tip_V2.0.zip</a><br /><ul><li><a href="/file/detail/Multiboot_Tech_Tip_V2.0.zip">Details</a></li><li><a href="/file/view/Multiboot_Tech_Tip_V2.0.zip/436908202/Multiboot_Tech_Tip_V2.0.zip">Download</a></li><li style="color: #666">838 KB</li></ul></div></div><!-- ws:end:WikiTextFileRule:165 --><br />
</td>
        <td>Under <strong>generated_files</strong> folder you will see the two image files that we need to create using SDK<br />
1) Hello_World_1.bin<br />
2) Hello_World_2.bin.<br />
If you are using these files, you can skip the SDK steps and jump to <strong><em>Programming to QSPI</em></strong> section.<br />
</td>
    </tr>
</table>

<!-- ws:start:WikiTextHeadingRule:8:&lt;h1&gt; --><h1 id="toc4"><a name="Implementation"></a><!-- ws:end:WikiTextHeadingRule:8 --><u>Implementation</u></h1>
 We will create two boot files.<br />
<br />
Hello_World_1.bin = (FSBL_1 + Hello_World_1)<br />
- prints “Hello World from Image 1 at address 0x0000_0000”<br />
Hello_World_2.bin = (FSBL_2 + Hello_World_2)<br />
- prints “Hello World from Image 2 at address 0x0004_0000”<br />
<br />
Like in the following Figure, FSBL_1 will fallback, FSBL_2 will not.<br />
Hello_World_1 will print “Hello World from Image 1 at address 0x0000_0000”<br />
And Hello_World_2 will print “Hello World from Image 2 at address 0x0004_0000”<br />
<br />
<!-- ws:start:WikiTextLocalImageRule:154:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_2.png/436903290/Multiboot_Image_2.png&quot; alt=&quot;&quot; title=&quot;&quot; align=&quot;left&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_2.png/436903290/Multiboot_Image_2.png" alt="Multiboot_Image_2.png" title="Multiboot_Image_2.png" align="left" /><!-- ws:end:WikiTextLocalImageRule:154 --><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
We will program Hello_World_1.bin at offset 0x00 of QSPI address and Hello_World_2.bin at offset 0x40000 (256KB) of QSPI address. We will modify the FSBL_1 to go through a fallback. Our expectation here is that when FSBL_1 goes through a fallback it will eventually find the image at 0x0004_0000 and will execute FSBL_2 and Application2. Just for this example, we will set “FSBL_DEBUG” flag, so we can see the Debug prints from FSBL.<br />
<br />
The sequence of events will be as follows<br />
1) BootROM executes and loads image 1<br />
2) FSBL_1 executes<br />
3) FSBL_1 sets MultiBoot Reg address as 0x40000/ 0x8000 = 0x8, eventually<br />
4) FSBL_1 issues a soft reset<br />
5) BootROM executes and loads image2<br />
6) FSBL_2 executes<br />
7) hello_world2 application executes and prints “Hello World from Image 2 at address 0x0004_0000”<br />
<!-- ws:start:WikiTextHeadingRule:10:&lt;h1&gt; --><h1 id="toc5"><a name="x1. Step by Step Instructions"></a><!-- ws:end:WikiTextHeadingRule:10 -->1. <u>Step by Step Instructions</u></h1>
 <br />
<ol><li>Create a FSBL_1 application for zc702 board. Set FSBL_DEBUG flag.</li></ol><br />
<!-- ws:start:WikiTextLocalImageRule:155:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_3.png/436903372/800x549/Multiboot_Image_3.png&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;height: 549px; width: 800px;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_3.png/436903372/800x549/Multiboot_Image_3.png" alt="Multiboot_Image_3.png" title="Multiboot_Image_3.png" style="height: 549px; width: 800px;" /><!-- ws:end:WikiTextLocalImageRule:155 --><br />
<br />
<ol><li>We will modify the main() function in FSBL_1 project to disable Handoff. The change required is highlighted in blue. This function <span style="color: #3f7f5f; font-family: Consolas; font-size: 13px;">FsblHandoff() </span>is called at the very bottom of main(), by disabling this function we generate a failure condition and will go through an FSBL fallback.</li></ol><br />
<span style="color: #3f7f5f; font-family: Consolas; font-size: 13px;"> //FsblHandoff(HandoffAddress);</span><br />
<span style="color: #3f7f5f; font-family: Consolas; font-size: 13px;">/*</span><br />
<span style="color: #3f7f5f; font-family: Consolas; font-size: 13px;"> * Should not come over here</span><br />
<span style="color: #3f7f5f; font-family: Consolas; font-size: 13px;"> */</span><br />
<span style="color: #000000; font-family: Consolas; font-size: 13px;"> OutputStatus(ILLEGAL_RETURN);</span><br />
<span style="color: #000000; font-family: Consolas; font-size: 13px;"> FsblFallback();</span><br />
<br />
<ol><li>Build FSBL_1 and generate FSBL_1.elf</li><li>Create a Hello_World_1 application for zc702 board. Open helloworld.c file and change the print instruction to “Hello World from Image 1 at address 0x0000_0000”</li><li>Create a FSBL_2 application for zc702 board. Set FSBL_DEBUG flag. Build FSBL_2 and generate FSBL_2.elf</li><li>Create one more Hello_World_2 application for zc702 board. Open helloworld.c file and change the print instruction to “Hello World from Image 2 at address 0x0004_0000”</li><li>Open “Xilinx Tools-&gt;Create Zynq Boot Image” from SDK. And choose the FSBL_1.elf and Hello_World_1.elf to create Hello_World_1.bin</li><li>Open “Xilinx Tools-&gt;Create Zynq Boot Image” from SDK. And choose the FSBL_2.elf and Hello_World_2.elf to create Hello_World_2.bin</li></ol><br />
<strong>Programming QSPI</strong><br />
<br />
<ol><li>Copy BOOT.bin from from Zynq releases <a class="wiki_link" href="http://www.wiki.xilinx.com/zynq-releases">http://wiki.xilinx.com/zynq-releases</a> (you can use the latest release, 14.5 release is used for testing this Techtip) in to a SD card and boot the ZC702 board in SD mode. Make sure you have connected the USB UART port of ZC702 board using a USB cable to your PC.</li></ol><br />
<strong><u>NOTE:</u></strong> You can also use XMD to run u-boot. The commands for running u-boot.elf from XMD is<br />
XMD% connect arm hw<br />
XMD% source ps7_init.tcl<br />
XMD% ps7_init<br />
XMD% dow u-boot.elf<br />
XMD% con<br />
u-boot.elf is available at <a class="wiki_link" href="/zynq-releases">http://wiki.xilinx.com/zynq-releases</a> and you can find ps7_init.tcl in the folder “ZC702_hw_platform”<br />
<br />
<!-- ws:start:WikiTextLocalImageRule:156:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_4.png/436903520/Multiboot_Image_4.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_4.png/436903520/Multiboot_Image_4.png" alt="Multiboot_Image_4.png" title="Multiboot_Image_4.png" /><!-- ws:end:WikiTextLocalImageRule:156 --><br />
<br />
<br />
<ol><li>Open a terminal to the USB-UART of the board (any one of Hyperterminal, teraterm, Putty) at 115200 baud rate. You should see “zynq-uboot&gt;” prompt</li><li>Open an XMD window (from command prompt or SDK) and cd to where the Hello_World_1.bin and Hello_World_2.bin exists</li></ol><br />
<strong>On XMD prompt – run the following commands</strong><br />
XMD% connect arm hw<br />
XMD% dow -data Hello_World_1.bin 0x800000<br />
XMD% dow -data Hello_World_2.bin 0x1000000<br />
XMD% con<br />
<br />
<!-- ws:start:WikiTextLocalImageRule:157:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_5.png/436903648/800x520/Multiboot_Image_5.png&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;height: 520px; width: 800px;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_5.png/436903648/800x520/Multiboot_Image_5.png" alt="Multiboot_Image_5.png" title="Multiboot_Image_5.png" style="height: 520px; width: 800px;" /><!-- ws:end:WikiTextLocalImageRule:157 --><br />
<br />
<strong>Now, on the zynq-uboot&gt; prompt on terminal, run the following commands</strong><br />
<br />
<strong><em>zynq-uboot&gt; sf probe</em></strong><br />
<em>erase 512 KB</em><br />
<strong>zynq-uboot&gt; sf erase 0 0x80000</strong><br />
program data at 0x80_0000 to QSPI offset 0x00<br />
<strong><em>zynq-uboot&gt; sf write 0x800000 0 0x1FFFF</em></strong><br />
<em>program data at 0x100_0000 to QSPI at</em> <strong>0x40000</strong> <em>(256 KB)</em><br />
<strong>zynq-uboot&gt; sf write 0x1000000 0x40000 0x1FFFF//</strong><br />
<!-- ws:start:WikiTextLocalImageRule:158:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_6.png/436903724/Multiboot_Image_6.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_6.png/436903724/Multiboot_Image_6.png" alt="Multiboot_Image_6.png" title="Multiboot_Image_6.png" /><!-- ws:end:WikiTextLocalImageRule:158 --><br />
<br />
<!-- ws:start:WikiTextHeadingRule:12:&lt;h1&gt; --><h1 id="toc6"><a name="x2. Verification of Multiboot"></a><!-- ws:end:WikiTextHeadingRule:12 -->2. <u>Verification of Multiboot</u></h1>
 Boot the board in QSPI mode. Check for the print on serial terminal. You will see that FSBL 1 failed and the Multiboot Register eventually incremented to 8 i.e, 8 * 0x8000 = 0x40_0000.<br />
“Multiboot Register: 0x0000C008”<br />
<br />
<!-- ws:start:WikiTextLocalImageRule:159:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_7.png/436903838/Multiboot_Image_7.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_7.png/436903838/Multiboot_Image_7.png" alt="Multiboot_Image_7.png" title="Multiboot_Image_7.png" /><!-- ws:end:WikiTextLocalImageRule:159 --><br />
<br />
<br />
After FSBL_2 executed, it gave control to Hello_World_2 which printed “Hello World from Image 2 at address 0x0004_0000.<br />
<br />
<!-- ws:start:WikiTextLocalImageRule:160:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_8.png/436903922/Multiboot_Image_8.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_8.png/436903922/Multiboot_Image_8.png" alt="Multiboot_Image_8.png" title="Multiboot_Image_8.png" /><!-- ws:end:WikiTextLocalImageRule:160 --><br />
<br />
<br />
<!-- ws:start:WikiTextHeadingRule:14:&lt;h2&gt; --><h2 id="toc7"><a name="x2. Verification of Multiboot-An Example to describe Golden Image Search"></a><!-- ws:end:WikiTextHeadingRule:14 -->An Example to describe Golden Image Search</h2>
 <br />
Now we will erase the first sector and check if we can still from image2. In this case the sequence of events will be as follows<br />
1) BootROM executes – and couldn’t find a valid header at bottom of flash<br />
2) BootROM goes for hunting a valid header at every 32KB offset<br />
3) BootROM sets MultiBoot Reg address as 0x40000/ 0x8000 = 0x8, eventually<br />
4) Finds a valid header at 0x0004_0000<br />
5) FSBL_2 executes and hands off to hello_world2 application which prints “Hello World from Image 2 at address 0x0004_0000”<br />
<br />
<strong>Erasing Image1 of QSPI</strong><br />
<br />
<ol><li>Copy BOOT.bin from from Zynq releases <a class="wiki_link" href="http://www.wiki.xilinx.com/zynq-releases">http://wiki.xilinx.com/zynq-releases</a> in to a SD card and boot the ZC702 board in SD mode</li><li>Open Hyperterminal at 115200 baud rate. You should see “zynq-uboot&gt;” prompt</li></ol><br />
On the zynq-uboot prompt on terminal, run the following commands<br />
<br />
<strong><em>zynq-uboot&gt; sf probe</em></strong><br />
<em>erase 128 KB</em><br />
<strong>zynq-uboot&gt; sf erase 0 0x20000//</strong><br />
<br />
<!-- ws:start:WikiTextLocalImageRule:161:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_9.png/436904014/Multiboot_Image_9.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_9.png/436904014/Multiboot_Image_9.png" alt="Multiboot_Image_9.png" title="Multiboot_Image_9.png" /><!-- ws:end:WikiTextLocalImageRule:161 --><br />
<br />
<!-- ws:start:WikiTextHeadingRule:16:&lt;h1&gt; --><h1 id="toc8"><a name="x3. Verification of Multiboot"></a><!-- ws:end:WikiTextHeadingRule:16 -->3. <u>Verification of Multiboot</u></h1>
 Boot the board in QSPI mode. Check for the print on serial terminal. You will see that FSBL 1 never executed and the Multiboot Register eventually incremented to 8 by BootROM i.e, 8 * 0x8000 = 0x40_0000.<br />
“Multiboot Register: 0x0000C008”<br />
<br />
<strong>FSBL Debug Prints:</strong><br />
<!-- ws:start:WikiTextLocalImageRule:162:&lt;img src=&quot;http://www.wiki.xilinx.com/file/view/Multiboot_Image_10.png/436904308/Multiboot_Image_10.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="http://www.wiki.xilinx.com/file/view/Multiboot_Image_10.png/436904308/Multiboot_Image_10.png" alt="Multiboot_Image_10.png" title="Multiboot_Image_10.png" /><!-- ws:end:WikiTextLocalImageRule:162 --><br />
<br />
<strong>Application Prints:</strong><br />
<!-- ws:start:WikiTextLocalImageRule:163:&lt;img src=&quot;/file/view/Multiboot_Image_11.png/436904564/Multiboot_Image_11.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="/file/view/Multiboot_Image_11.png/436904564/Multiboot_Image_11.png" alt="Multiboot_Image_11.png" title="Multiboot_Image_11.png" /><!-- ws:end:WikiTextLocalImageRule:163 --><br />
<br />
<!-- ws:start:WikiTextHeadingRule:18:&lt;h1&gt; --><h1 id="toc9"><a name="x4. Time for Multiboot from QSPI"></a><!-- ws:end:WikiTextHeadingRule:18 -->4. <u>Time for Multiboot from QSPI</u></h1>
 Let’s erase the second image and program it at the top of Flash, offset at 0x00FE_0000. We will measure the approximate time taken for the first message to appear on screen.<br />
Erasing Image1 of QSPI<br />
<br />
<ol><li>Copy BOOT.bin from from Zynq releases <a class="wiki_link" href="http://www.wiki.xilinx.com/zynq-releases">http://wiki.xilinx.com/zynq-releases</a> in to a SD card and boot the ZC702 board in SD mode</li><li>Open Hyperterminal at 115200 baud rate. You should see “zynq-uboot&gt;” prompt</li></ol><br />
On XMD prompt – run the following commands<br />
XMD% connect arm hw<br />
XMD% dow -data Hello_World_2.bin 0x1000000<br />
XMD% con<br />
<br />
On the zynq-uboot prompt on terminal, run the following commands<br />
<strong><em>zynq-uboot&gt; sf probe</em></strong><br />
<em>erase 512 KB</em><br />
<strong>zynq-uboot&gt; sf erase 0xFE0000 0x20000</strong><br />
program data at 0x100_0000 to QSPI at <strong><em>0x00FE_0000</em></strong><br />
<strong><em>zynq-uboot&gt; sf write 0x1000000 0xFE0000 0x1FFFF</em></strong><br />
<br />
<em>When you boot in QSPI mode, you will see the Multiboot register is 0x1FC. If you use a scope to see when the UART line toggles, you can determine the boot time.</em><br />
Boot time when image is at bottom of flash : 200 msec (measured from power on to toggling of DS12 LED on ZC702 board)<br />
<br />
<!-- ws:start:WikiTextHeadingRule:20:&lt;h1&gt; --><h1 id="toc10"><a name="x5. Locking the Boot Sector"></a><!-- ws:end:WikiTextHeadingRule:20 -->5. <u>Locking the Boot Sector</u></h1>
 <strong>Note: Protect command is currently not supported in u-boot</strong><br />
In the above example, we were able to simply erase the first 128KB of the QSPI device after booting from SD mode. We don’t want this in production. In this example we will find out how to lock the boot image such that an “sf erase” command will not be able to erase the boot area.<br />
<br />
//protect 256KB to 512KB<br />
protect on 0x40000 0x80000<br />
sf read 0x800000 0x40000 0x400<br />
md 0x800000 0x100<br />
<br />
sf erase 0x40000 0x40000<br />
sf read 0x800000 0x40000 0x400<br />
md 0x800000 0x100<br />
<br />
<!-- ws:start:WikiTextHeadingRule:22:&lt;h1&gt; --><h1 id="toc11"><a name="x6. Multiboot and NAND Bad Block Management"></a><!-- ws:end:WikiTextHeadingRule:22 -->6. <u>Multiboot and NAND Bad Block Management</u></h1>
 <br />
QSPI devices don’t have bad blocks, but NAND devices may have Bad blocks. Consider the scenario depicted in figure below. The BootROM header contains the address of the multiboot image which is Sector 6. While making the image using Bootgen or while programming the device using u-boot the bad blocks are not accounted for, but BootROM accounts for them when reading from the Flash device. Due to the difference in how BootROM and u-boot handle bad blocks, there is an issue with successfully running BootROM multiboot or FSBL fallback on NAND devices.<br />
<br />
<!-- ws:start:WikiTextLocalImageRule:164:&lt;img src=&quot;/file/view/Multiboot_Image_12.png/436904730/Multiboot_Image_12.png&quot; alt=&quot;&quot; title=&quot;&quot; /&gt; --><img src="/file/view/Multiboot_Image_12.png/436904730/Multiboot_Image_12.png" alt="Multiboot_Image_12.png" title="Multiboot_Image_12.png" /><!-- ws:end:WikiTextLocalImageRule:164 --><br />
<br />
The solution to this issue is for FSBL or the application to find the number of bad blocks address from user’s multiboot address. For example if you have want to have a second Image at offset 0x0100_0000 of NAND and there are three bad sectors each of size 128KB. You have to load the Multiboot address register with a value of 0x0100_0000 - (3 * 128 KB) i.e, 0x0100_0000 – 0x0060_0000 = 0x00A0_0000<br />
This is not an issue for Golden Image Search mechanism as the BootROM will search for a valid header at every sector of the NAND device.
  </div>

<div id="pageEditor" class="editorWrapper editorLayer">
  <iframe id="target_editor" name="target_editor" src="/s/blank.html" style="width:0px;height:0px;border:0"></iframe>
    <form action="/page/edit/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip" method="post" class="editorForm" id="editorForm"><input type="hidden" name="wikispacesFormToken" value="235d5038a28d60fa9ca5a412f673c5a64f943f78"/><div class="movkp"><input type="text" class="form-control" name="wikispaces_user_id" value="user-1534822141"/></div><div class="wsh"><input type="text" class="form-control" name="goto" autocomplete = "off"/></div><div class="jovise"><input type="text" class="form-control" name="mode" autocomplete = "off"/></div><div class="movkp"><input type="text" class="form-control" name="version" autocomplete = "off"/></div><div class="mimw"><input type="text" class="form-control" name="pageComments" autocomplete = "off"/></div><div class="jowic"><input type="text" class="form-control" name="saveAndContinue" autocomplete = "off"/></div><div class="jowic"><input type="text" class="form-control" name="comment" autocomplete = "off"/></div><div class="movkp"><input type="text" class="form-control" name="commentsDisabled" autocomplete = "off"/></div><div class="jovise"><input type="text" class="form-control" name="contentPresent" autocomplete = "off"/></div><div class="wsh"><input type="text" class="form-control" name="editorCleanup" autocomplete = "off"/></div><div class="jowic"><input type="text" class="form-control" name="WikispacesEditorContent" autocomplete = "off"/></div><input type="hidden" name="wikispacesASFormToken" value="0989469cad0d2c050faf678a6c389efca91106bd"/>
    <input type="hidden" title="goto" name="0d4ca9f31c5263adac55658d6fd88b12124c51b3" value=""/>
    <input type="hidden" title="mode" name="e24be4c789b021b58f22d0f073b2fbd32fe208af" autocomplete="off" value="visual"/>
    <input type="hidden" title="version" name="3af703e49633c637bf7b2f6cb84878b57f170f9c" autocomplete="off" value="437610806"/>
    <input type="hidden" title="pageComments" name="99708b34b42fc73d4b354a02c0cafe274e27a8b5" autocomplete="off" value=""/>
    <input type="hidden" title="saveAndContinue" name="9978e372da018c0ab7b06211a731e7927cdd5455" value="0"/>
    <input type="hidden" title="comment" name="b13d8bedc20eb51e86f5ad1e0dd3e6a17c15eb4f" value=""/>
    <input type="hidden" title="commentsDisabled" name="5e6b47855b97cd4dc85177b41d0f96187ea3c0de" autocomplete="off" value=""/>
    <input type="hidden" title="contentPresent" name="4d62698d1db1e76dc805b588546f8a14b199d913" autocomplete="off" value=""/>
    <input type="hidden" title="editorCleanup" name="7d97e3b13846c821078116cf5f7edaa2cf97759c" autocomplete="off" value=""/>

    <textarea id="wsMainEditor" title="content" class="noContentHide" name="c9e8e7d1ea345b56a856bb492a69b3de8a484f7c" style="width: 100%; position: absolute; top: -50000px; left: -50000px;" autocomplete="off"></textarea>

  <noscript>
    <h2>Javascript Required</h2>
    <p>You need to enable Javascript in your browser to edit pages.</p>
  </noscript>

  </form>
  
  
  <div id="plainTextEditor" style="position:relative;display:none" class="editorLayer" >
    <textarea id="textEditor" class="autogrow"></textarea>
    <p style="clear:both;" align="right"><a href="http://helpcenter.wikispaces.com/customer/portal/articles/1959131-wikitext">help on how to format text</a></p>
  </div>
</div>




  </div>
  <div class="commentColumn WikispacesStream"><div class="WikispacesContent WikispacesBs3"><div class="commentList"></div></div></div>
</div>

  




<script type="text/template" id="js-event-template">
  <small>
    <%- startDateShortFormat %>
    <a href="<%- ws.common.pathFor('event', 'view', id) %>" class="WikispacesDialogLink">
      <%- ws.common.truncate(title, 15) %>
    </a>
  </small>
</script>

<script type="text/template" id="js-reply-template">
  <div class="tc-timeline-comment media">

    <a class="pull-left userLink" href="<%- userCreated.url %>">
      <img src="<%- userCreated.imageUrl %>" width="30" height="30" class="author-avatar" alt="" />
    </a>
    <div class="media-body" data-id="<%= id %>">
      <% if (ws.context.user.canAdministerWiki) { %>
        <i class="tc-delete-comment fa fa-trash-o contextual-command destroy-message ws-tip" title="Delete reply"></i>
      <% } %>
      <div class="tc-box-name-date">
        <span class="tc-commenter"><a href="<%- userCreated.url %>"><%- userCreated.username %></a></span>
        <% if (smartDate == '__live__') { %>
        <abbr style="border-bottom-style: none;" class="timeago tc-comment-date" title="<%- (new Date(parseInt(dateCreated) * 1000)).toISOString() %>">
          <%- (new Date(parseInt(dateCreated) * 1000)).toDateString() %>
        </abbr>
        <% } else { %>
          <abbr style="border-bottom-style: none;" class="tc-comment-date"><%- smartDate %></abbr>
        <% } %>
      </div>
      <% if (body) { %>
      <p>
        <%= body %>
      </p>
      <% } %>
    </div>
  </div>
</script>

<script type="text/template" id="js-share-template">
  <div class="tc-timeline-block tc-<%= ws.stream.typeToBlockType(sharedType) %>-block" <%= (ws.stream.hideTimeline ? 'style="padding-left: 0px;"' : '') %>>

    <% if (!ws.stream.hideTimeline) { %>
      <div class="tc-timeline-icon">
        <i class="fa fa-<%= ws.stream.typeToIcon(sharedType) %>"></i>
      </div>
      <div class="tc-timeline-triangle-man"></div>
    <% } %>

    <div class="tc-timeline-box" data-id="<%= id %>">
      <div class="media">
        <a class="pull-left userLink" href="<%- userCreated.url %>">
          <img src="<%- userCreated.imageUrl %>" width="48" height="48" class="author-avatar media-object" alt="" />
        </a>

        <div class="media-body">

          <div class="tc-stream-dropdown">
            <a class="dropdown-toggle" data-toggle="dropdown" href="#">
              <i class="fa fa-chevron-down"></i>
            </a>
            <ul class="dropdown-menu dropdown-menu-right" role="menu">
              <% if (ws.context.user.id) { %>
              <li>
                <a class="js-toggle-monitor" tabindex="-1" href="#">
                  <i class="fa-fw fa fa-eye"></i>
                  <span><%= monitored ? 'Start Monitoring' : 'Stop Monitoring' %></span>
                </a>
              </li>
              <% } %>

              <% if (ws.context.user.canAdministerWiki) { %>
              <li>
                <a class="js-toggle-lock" tabindex="-1" href="#">
                  <i class="fa-fw fa fa-lock"></i>
                  <span><%= locked ? 'Unlock Replies' : 'Lock Replies' %></span>
                </a>
              </li>
              <% if (sharedType == 'discussion' || sharedType == 'comment' || sharedType == 'event') { %>
              <li>
                <a class="js-destroy-share" tabindex="-1" href="#">
                  <i class="fa-fw fa fa-trash-o"></i>
                  Delete <%= ws.stream.typeToName(sharedType) %>
                </a>
              </li>
              <% } %>
              <% } %>
            </ul>
          </div>

          <div class="tc-timeline-box-header ws-reveal media-heading">
              <h3 class="tc-box-title">
              <% if (typeof adminLink !== 'undefined' && adminLink && ws.context.user.canAdministerWiki) { %>
                <a href="<%- adminLink %>"><%- title %></a>
              <% } else { %>
                <%- title %>
              <% } %>
              <% if (typeof startDate !== 'undefined' && startDate) { %> - <%= startDateShortFormat %> <%= ws.stream.getYearFromStartDate(startDate) %><% } %>
              </h3>
              <div class="tc-box-name-date">
                <% if (ws.context.instance.isTesClassroom) { %>
                  <%- userCreated.username %>
                <% } else { %>
                  <a class="author-name" href="<%- userCreated.url %>"><%- userCreated.username %></a>
                <% } %>
                <% if (typeof recipients !== 'undefined' && recipients) { %>
                  <i class="fa fa-angle-right"></i>
                  <% if (typeof recipientsLink !== 'undefined') { %>
                    <a href="<%- recipientsLink %>"><%- recipients %></a>
                  <% } else { %>
                    <span class="recipients"><%- recipients %></span>
                  <% } %>
                <% } %>
                <% if (smartDate == '__live__') { %>
                  <abbr style="border-bottom-style: none;" class="timeago tc-block-date" title="<%= (new Date(parseInt(dateCreated) * 1000)).toISOString() %>">
                    <%= (new Date(parseInt(dateCreated) * 1000)).toDateString() %>
                  </abbr>
                <% } else { %>
                  <abbr style="border-bottom-style: none;" class="tc-block-date"><%- smartDate %></abbr>
                <% } %>
              </div>
          </div>

          <div class="<%= sharedType == 'comment' && !orphaned && !ws.stream.noCollapse ? 'hidden ' : '' %>tc-block-content">
            <div class="clearfix">
              <% if (typeof rangeActions !== 'undefined') { %>
                <div class="tc-range-actions">
                  <% for(var i = 0; i < rangeActions.length; i++) { %>
                  <%= ws.stream.rangeActionTemplate(rangeActions[i]) %>
                  <% } %>
                </div>
              <% } %>
              <% if (description) { %>
                <p><%= description %></p>
              <% } %>
            </div>
          </div>

          <% if (replyPages.length > 0 && !(replyPages.length === 1 && replyPages[0].digests.length === 0)) { %>
            <div class="tc-timeline-comments">
            <% for (var i = 0; i < replyPages.length; i++) { %>
              <% if (i == 0 && replyPages[i].more) { %>
                <a href="#" class="tc-show-more" onclick="ws.stream.pageReplies(<%= id %>, <%= replyPages[i].page + 1 %>); return false">Show more replies (<%= replyPages[i].more %> hidden) </a>
              <% } else { %>
                <div></div>
              <% } %>
              <% for (var j = 0; j < replyPages[i].digests.length; j++) { %>
                <%= ws.stream.replyTemplate(replyPages[i].digests[j]) %>
              <% } %>
            <% } %>
            </div>
          <% } %>

          <% if ((ws.stream.userCanPostMessage && !locked) || ws.context.user.canAdministerWiki) { %>
          <div class="tc-add-comment media <%= ws.stream.noCollapse ? 'add-active' : ''%>">
            <img src="<%- ws.context.user.imageUrlPrefix %>lg.jpg" width="30" height="30" class="pull-left author-avatar" alt="" />
            <div class="media-body">
              <textarea name="reply" placeholder="Comment" class="form-control form-control-tc ws-reveal <%= !ws.stream.noCollapse ? 'ws-unrevealed' : ''%> reply" /></textarea>
              <button type="button" class="btn-tc btn-info-tc btn-sm-tc add-reply">Post</button>
            </div>
          </div>
          <% } %>
        </div>

      </div>
    </div>
  </div>
</script>

<script type="text/template" id="js-range-action-template">
  <div>
    <strong><%- name %></strong>
    <% if (typeof(diffUrl) !== 'undefined') { %>
      <a href="<%- diffUrl %>">
    <% } %>
    <%= new Date(dateCreated * 1000).toLocaleString() %>
    <% if (typeof(diffUrl) !== 'undefined') { %>
      </a>
    <% } %>
    <% if (typeof(rangeText) !== 'undefined') { %>
      <div>
        <span class="commentExtent">
        <% if (typeof(diffUrl) !== 'undefined') { %>
          <a href="<%- diffUrl %>">
        <% } %>
        <%= rangeText %>
        <% if (typeof(diffUrl) !== 'undefined') { %>
          </a>
        <% } %>
        </span>
      </div>
    <% } %>
  </div>
</script>

<script type="text/template" id="js-stream-end-template">
  <div class="tc-timeline-block tc-end-block">
    <div class="tc-timeline-icon" style="margin-top: -10px;" />
    <div class="tc-timeline-box" style="visibility: hidden;">
      <p class="tc-box-title"></p>
    </div>
  </div>
</script>

<a name="discussion"></a>
<div class="timeline WikispacesBs3 tc-timeline-embedded show-border">
  <div class="timeline-line"></div>
    <div id="js-share-list">
    <div class="spinner hidden"><i class="fa fa-spinner fa-spin"></i></div>
  </div>
</div></div></div><div id="sentinel" style="clear:both"></div>        </main>
        <footer class="ws-theme-footer" role="contentinfo">
          <div class="ws-theme-footer-inner">
            <div class="WikiFooterNav WikiElement"><span style="background-color: #ffffff; display: block; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 1.5; text-align: center;"><br />
</span><br />
<hr />
<!-- ws:start:WikiTextRemoteImageRule:2:&lt;div style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://creativecommons.org/licenses/by/3.0/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://i.creativecommons.org/l/by/3.0/88x31.png&quot; alt=&quot;Creative Commons License&quot; title=&quot;Creative Commons License&quot; /&gt;&lt;/a&gt;&lt;/div&gt; --><table class="captionBox" style="margin-left:auto; margin-right:auto;"><tr><td class="captionedImage"><a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow"><img src="http://i.creativecommons.org/l/by/3.0/88x31.png" alt="Creative Commons License" title="Creative Commons License" /></a></td></tr><tr><td class="imageCaption">Creative Commons License</td></tr></table><!-- ws:end:WikiTextRemoteImageRule:2 --><span style="background-color: #ffffff; display: block; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; text-align: center;"><span style="line-height: 1.5;">This work is licensed under a </span><span style="color: #4374b7; line-height: 1.5;"><a class="wiki_link_ext" href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow">Creative Commons Attribution 3.0 Unported License</a></span><span style="line-height: 1.5;">.</span></span></div>                      </div>
        </footer>
      </div>
    </div>
  </div>
</div>


<script type="text/template" id="dialog-template">
<div class="modal fade" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></button>
        <h4 class="modal-title"><%= header %></h4>
      </div>
      <div class="modal-body">
        <%= body %>
      </div>
    </div>
  </div>
</div>
</script>


<div id="js-help-template" class="hidden">
  <div class="ws-help">
    <div class="js-help-controls WikispacesContent WikispacesBs3">
      <a href="http://www.wiki.xilinx.com/site/gettingstarted/off" class="btn btn-default hidden js-getting-started-off pull-right">Turn off "Getting Started"</a>
      <ol class="breadcrumb">
        <li class="js-special-breadcrumb active">
          <a href="http://helpcenter.wikispaces.com/" data-breadcrumb="0">Home</a>
        </li>
        <li class="js-ellipsis hidden js-special-breadcrumb">
          ...
        </li>
        <li class="js-spinner hidden js-special-breadcrumb"><i class="fa fa-spinner fa-spin"></i></li>
      </ol>
    </div>
    <div class="ws-help-content wiki">Loading...</div>
  </div>
</div>
</div>
<script src="http://www.wiki.xilinx.com/s/gz/9z767466-common.min.js" type="text/javascript"></script>
<script src="http://www.wiki.xilinx.com/s/gz/70163536-editorc.min.js" type="text/javascript"></script>
<script src="http://www.wiki.xilinx.com/s/gz/85k7018k-stream.min.js" type="text/javascript"></script>
<script src="http://www.wiki.xilinx.com/s/gz/91k8z207-contentbar.min.js" type="text/javascript"></script>
<script src="http://www.wiki.xilinx.com/s/gz/395j1vq7-component.stream-vo.min.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
ws.namespace('ws.attributes');
ws.namespace('ws.stream');
ws.attributes.DISCUSSION_COUNT = 0;
ws.attributes.pageId = 155960372;
ws.attributes.version = 437610806;
ws.attributes.showEditor = true;
ws.attributes.editUrl = "http:\/\/www.wiki.xilinx.com\/page\/edit\/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip";
ws.attributes.userCanEdit = false;
ws.stream.userCanPostMessage = false;
ws.stream.hideTimeline = true;
ws.stream.shareSource = "http:\/\/www.wiki.xilinx.com\/page\/shares\/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip";

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

jQuery(document).ready(function() {
  ws.common.addJsonNotices({"warning":[],"error":[],"info":[],"success":[]});
});

jQuery(document).ready(function($) {
  
  function tipPlacement() {
    return this.$element.closest('.ws-menu-bar .btn-group').is('.open') ? 'top' : 'bottom';
  }

  

  $('.ws-menu-bar').each(function() {
    var $menuBar = $(this);
    var $tagDropdown = $menuBar.find('.ws-tag-dropdown-menu');
    $menuBar.find('.tipme').tooltip({placement: tipPlacement, container: '.ws-menu-bar'});

    
    $menuBar.find('.ws-btn-more').click(ws.common.makeLinkClickFunction(function(e) {
      if ($(this).closest('.ws-menu-bar .btn-group').is('.open')) {
        ws.common.hideMorePageBar();
      } else {
        ws.common.showMorePageBar();
      }
    }));

    $menuBar.on('click', '.ws-tag-dropdown-toggle', ws.common.makeLinkClickFunction(function(e) {
      if ($(this).closest('.ws-menu-bar .dropdown').is('.open')) {
        ws.common.hideTagDropdown();
      } else {
        ws.common.showTagDropdown();
      }
    }));

    $(document.body).click(function(e) {
      var $target = $(e.target);
      if (!$target.closest('.ws-more-menu').closest('.ws-menu-bar').is($menuBar)
          || $target.closest('a').is('.WikispacesDialogLink')) {
        ws.common.hideMorePageBar();
      }
      if ($tagDropdown.length && !$target.closest('.ws-tag-dropdown-menu').is($tagDropdown)) {
        ws.common.hideTagDropdown();
      }
    });
    
  });
});


jQuery(document).ready(function($) {
  $('.ws-more-menu').on('click', 'a', function(e) {
    if ($(this).is('.disabled')) {
      e.preventDefault();
    }
  });
});


jQuery(document).ready(function() {
  ws.editor.canEdit = false;
  var editUrl = 'http://www.wiki.xilinx.com/page/edit/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip?goto=http%3A%2F%2Fwww.wiki.xilinx.com%2FZynq-7000%2BAP%2BSoC%2BBoot%2B-%2BMultiboot%2BTech%2BTip';

  jQuery('#js-edit-from-template').change(function() {
    window.location = ws.common.addUriParams(editUrl, [['template', jQuery(this).val()]]);
  });
});


jQuery(document).ready(function() {
  ws.editor.loadEditorLibs('http://www.wiki.xilinx.com/site/editorlibs/en_US/11kk95v9.gz.js');
});


ws.editor.startEditor = function (moreCoreOptions, moreMainOptions) {
  ws.editor.canEdit = true;

  var coreOptions = {
    'content_css': ['http://www.wiki.xilinx.com/stylesheet/editor/414980440-414983508D.gz.css']
  };

  // The stylesheet is passed in as a string, turn it into an array
  // Add bootstrap styles to the editor, if we are in a theme that has full screen bootstrap
  if (jQuery('body').is('.WikispacesBs3')) {
    coreOptions.content_css.push('http://www.wiki.xilinx.com//s/internal-bootstrap-body.css');
  }

  var mainOptions = {
    'wssave_cancel_url': '/Zynq-7000+AP+SoC+Boot+-+Multiboot+Tech+Tip',
    'wsimage_upload_url': 'http://www.wiki.xilinx.com/file/multiupload',
    'wsimage_max_file_size_mb': '100',
    'wsimage_page_view_group': ''
  };

  ws.editor.loadEditor(jQuery.extend(coreOptions, moreCoreOptions), jQuery.extend(mainOptions, moreMainOptions));
};

  var wikispaces_page_version = '437610806';

  jQuery(document).ready(function() {
    ws.editor.enableButtons();
  });



--></script><!-- w21 80 tot:80:80(1) mem:1:10(32) wki:1:3(3) dql:2:2(1) -->

</body>
</html>